A bot is a software application that runs automated tasks over the Internet. The Internet relies on bots. For search engines to function, a bot runs an algorithm for crawling or web spidering in which the bot fetches and analyzes files and content from web servers. The information from the bot is used to index various websites. Search engines use the indexes to provide easily searchable databases. Bots may also be used in chat rooms or instant messaging interfaces to provide automated information to users.
However, bots have gained greater notoriety when used for malicious purposes. Bots are the root cause of many security problems on the Internet. Bots may be programmed to send spam, steal information from infected machines, and perform distributed denial-of-service attacks.
Many approaches to bot detection have been proposed, but the approaches either rely on end-host installations, or, if they operate on network traffic, require deep packet inspection (DPI) for signature matching.